ããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã§PWAã€ã³ã¹ããŒã«ããã³ããã广çã«ããªã¬ãŒããæ¹æ³ãåŠã³ãŸããã·ãŒã ã¬ã¹ãªãŠãŒã¶ãŒäœéšã®ããã®åºæºããã¹ããã©ã¯ãã£ã¹ãé«åºŠãªãã¯ããã¯ãæ¢ããŸãã
ããã³ããšã³ãPWAã€ã³ã¹ããŒã«ã®åºæºïŒã€ã³ã¹ããŒã«ããã³ããããªã¬ãŒããžãã¯ã®ç¿åŸ
ããã°ã¬ãã·ããŠã§ãã¢ããªïŒPWAïŒã¯ããã€ãã£ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã«ä»£ããé åçãªéžæè¢ãæäŸãããã©ãŠã¶å ã§çŽæ¥ããªããã§é åçãªãŠãŒã¶ãŒäœéšãå®çŸããŸããPWAã®äž»èŠãªç¹åŸŽã¯ããŠãŒã¶ãŒã®ããã€ã¹ã«ã€ã³ã¹ããŒã«ã§ããããšã§ããããªãã©ã€ã³ã¢ã¯ã»ã¹ãããã·ã¥éç¥ãããçµ±åãããäœéšãªã©ã®å©ç¹ãæäŸããŸããã€ã³ã¹ããŒã«ããã»ã¹ã¯éåžžããã©ãŠã¶å ã«è¡šç€ºãããããã³ãããä»ããŠéå§ãããŸãããã®ããã³ãããããªã¬ãŒããåºæºãšããžãã¯ãçè§£ããããšã¯ãã¹ã ãŒãºã§å¹æçãªPWAã®æ¡çšã確å®ã«ããããã«äžå¯æ¬ ã§ãã
PWAã€ã³ã¹ããŒã«ã®äž»èŠãªåºæºãšã¯ïŒ
ã€ã³ã¹ããŒã«ããã³ããã®ããªã¬ãŒããžãã¯ã«é£ã³èŸŒãåã«ããŠã§ããµã€ããPWAãšèŠãªããããŠãŒã¶ãŒã«ã€ã³ã¹ããŒã«ãä¿ãè³æ ŒãåŸãããã«æºããã¹ãåºæ¬çãªåºæºãçè§£ããããšãäžå¯æ¬ ã§ãããããã®åºæºã¯ãã©ãŠã¶ã«ãã£ãŠåŒ·å¶ãããã€ã³ã¹ããŒã«ãããã¢ããªã±ãŒã·ã§ã³ãäžå®ã®åè³ªãšæ©èœã®åºæºãæºãããŠããããšãä¿èšŒãã圹å²ãæãããŸãã
1. å®å šãªã³ã³ããã¹ãïŒHTTPSïŒ
PWAã¯ãæ©å¯ããŒã¿ãæ±ã£ããé«åºŠãªæ©èœãå¿ èŠãšããããããã¹ãŠã®çŸä»£çãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ãšåæ§ã«ãHTTPSãä»ããŠæäŸãããå¿ èŠããããŸããããã«ããããŠãŒã¶ãŒã®ããã€ã¹ãšãµãŒããŒéã®ãã¹ãŠã®éä¿¡ãæå·åãããçèŽãäžéè æ»æããä¿è·ãããŸããHTTPSããªãå Žåããã©ãŠã¶ã¯ãŠã§ããµã€ããPWAãšèŠãªãããã€ã³ã¹ããŒã«ãèš±å¯ããŸããã
å®è·µçãªæŽå¯ïŒãã¡ã€ã³ã®SSL/TLSèšŒææžãååŸããŠèšå®ããŸããLet's Encryptãªã©ã®ãµãŒãã¹ã¯ãç¡æã§èªååãããèšŒææžç®¡çãæäŸããŠããããŠã§ããµã€ãã®ã»ãã¥ãªãã£ä¿è·ããããŸã§ä»¥äžã«ç°¡åã«ãªã£ãŠããŸãã
2. Webã¢ããªãããã§ã¹ã
Webã¢ããªãããã§ã¹ãã¯ãPWAã«é¢ããã¡ã¿ããŒã¿ãæäŸããJSONãã¡ã€ã«ã§ãããã®ã¡ã¿ããŒã¿ã«ã¯ãã¢ããªã®ååãçãååã説æãã¢ã€ã³ã³ãéå§URLã衚瀺ã¢ãŒããªã©ã®æ å ±ãå«ãŸããŸãããã©ãŠã¶ã¯ãã®æ å ±ã䜿çšããŠããŠãŒã¶ãŒã®ããŒã ç»é¢ãã¢ããªã©ã³ãã£ãŒã«ã¢ããªãæ£ãã衚瀺ããŸãã
ãããã§ã¹ãã®äž»èŠãªããããã£ïŒ
- name: ã¢ããªã±ãŒã·ã§ã³ã®ãã«ããŒã ïŒäŸïŒãExample Global NewsãïŒã
- short_name: ã¹ããŒã¹ãéãããŠããå Žåã«äœ¿çšããçãååïŒäŸïŒãGlobal NewsãïŒã
- description: ã¢ããªã±ãŒã·ã§ã³ã®ç°¡åãªèª¬æã
- icons: ã¢ã€ã³ã³ãªããžã§ã¯ãã®é åãåãªããžã§ã¯ãã¯ã¢ã€ã³ã³ã®ãœãŒã¹URLãšãµã€ãºãæå®ããŸããç°ãªãããã€ã¹ãšã®äºææ§ã確ä¿ããããã«ãè€æ°ã®ã¢ã€ã³ã³ãµã€ãºãæäŸããããšãéèŠã§ãã
- start_url: ãŠãŒã¶ãŒãããŒã ç»é¢ããã¢ããªãèµ·åãããšãã«èªã¿èŸŒãŸããã¹ãURLïŒäŸïŒã/index.html?utm_source=homescreenãïŒã
- display: ã¢ããªãã©ã®ããã«è¡šç€ºãããã¹ãããæå®ããŸããäžè¬çãªå€ã«ã¯ã
standaloneïŒç¬èªã®ãããã¬ãã«ãŠã£ã³ããŠã§éãïŒãfullscreenãminimal-uiãbrowserïŒæšæºã®ãã©ãŠã¶ã¿ãã§éãïŒããããŸãã - theme_color: ã¢ããªã±ãŒã·ã§ã³ã®ããã©ã«ãã®ããŒãã«ã©ãŒãå®çŸ©ããŸããããã¯ãã¹ããŒã¿ã¹ããŒããã®ä»ã®UIèŠçŽ ã®å€èгãã«ã¹ã¿ãã€ãºããããã«äœ¿çšã§ããŸãã
- background_color: èµ·åæã«ãŠã§ãã¢ããªã®ã·ã§ã«ã®èæ¯è²ãæå®ããŸãã
ãããã§ã¹ãã®äŸ (manifest.json):
{
"name": "ãµã³ãã«ã»ã°ããŒãã«ãã¥ãŒã¹",
"short_name": "ã°ããŒãã«ãã¥ãŒã¹",
"description": "ææ°ã®ã°ããŒãã«ãã¥ãŒã¹ãšåæã§åžžã«æ
å ±ãå
¥æã",
"icons": [
{
"src": "/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"start_url": "/index.html?utm_source=homescreen",
"display": "standalone",
"theme_color": "#007bff",
"background_color": "#ffffff"
}
å®è·µçãªæŽå¯ïŒå
æ¬çãªmanifest.jsonãã¡ã€ã«ãäœæããããŒãžã®<head>ã»ã¯ã·ã§ã³ã«ãã<link rel="manifest" href="/manifest.json">ã¿ã°ã䜿çšããŠHTMLã«ãªã³ã¯ããŸãã
3. ãµãŒãã¹ã¯ãŒã«ãŒ
ãµãŒãã¹ã¯ãŒã«ãŒã¯ãã¡ã€ã³ã®ãã©ãŠã¶ã¹ã¬ãããšã¯å¥ã«ããã¯ã°ã©ãŠã³ãã§å®è¡ãããJavaScriptãã¡ã€ã«ã§ãããã©ãŠã¶ãšãããã¯ãŒã¯éã®ãããã·ãšããŠæ©èœãããªãã©ã€ã³ã¢ã¯ã»ã¹ãããã·ã¥éç¥ãããã¯ã°ã©ãŠã³ãåæãªã©ã®æ©èœãå¯èœã«ããŸãããµãŒãã¹ã¯ãŒã«ãŒã¯ãPWAãã€ã³ã¹ããŒã«å¯èœãšèŠãªãããããã«äžå¯æ¬ ã§ãã
ãµãŒãã¹ã¯ãŒã«ãŒã®äž»ãªæ©èœïŒ
- ãã£ãã·ã³ã°ïŒéçã¢ã»ããïŒHTMLãCSSãJavaScriptãç»åïŒããã£ãã·ã¥ããŠããªãã©ã€ã³ã¢ã¯ã»ã¹ãå¯èœã«ããèªã¿èŸŒã¿ããã©ãŒãã³ã¹ãåäžãããŸãã
- ãããã¯ãŒã¯ã®ååïŒãããã¯ãŒã¯ãªã¯ãšã¹ããååãããããã¯ãŒã¯ãå©çšã§ããªããšãã«ãã£ãã·ã¥ãããã³ã³ãã³ããæäŸããŸãã
- ããã·ã¥éç¥ïŒã¢ããªãã¢ã¯ãã£ãã«å®è¡ãããŠããªããšãã§ããŠãŒã¶ãŒãšãšã³ã²ãŒãžããããã®ããã·ã¥éç¥ãåŠçããŸãã
- ããã¯ã°ã©ãŠã³ãåæïŒãããã¯ãŒã¯ãå©çšå¯èœãªãšãã«ããã¯ã°ã©ãŠã³ãã§ããŒã¿ãåæããŸãã
ãµãŒãã¹ã¯ãŒã«ãŒã®äŸ (service-worker.js):
const CACHE_NAME = 'global-news-cache-v1';
const urlsToCache = [
'/',
'/index.html',
'/css/style.css',
'/js/main.js',
'/icons/icon-192x192.png',
'/icons/icon-512x512.png'
];
self.addEventListener('install', event => {
event.waitUntil(
caches.open(CACHE_NAME)
.then(cache => {
console.log('ãã£ãã·ã¥ãéããŸãã');
return cache.addAll(urlsToCache);
})
);
});
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
.then(response => {
// ãã£ãã·ã¥ããã - ã¬ã¹ãã³ã¹ãè¿ã
if (response) {
return response;
}
return fetch(event.request);
})
);
});
å®è·µçãªæŽå¯ïŒã¡ã€ã³ã®JavaScriptãã¡ã€ã«ã§navigator.serviceWorker.register('/service-worker.js')ã䜿çšããŠãµãŒãã¹ã¯ãŒã«ãŒãç»é²ããŸãããµãŒãã¹ã¯ãŒã«ãŒãéèŠãªã¢ã»ããããã£ãã·ã¥ãããããã¯ãŒã¯ãªã¯ãšã¹ããåŠçããããã«é©åã«èšå®ãããŠããããšã確èªããŠãã ããã
4. ãŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ãïŒèšªåé »åºŠïŒ
ãã©ãŠã¶ã¯éåžžãã€ã³ã¹ããŒã«ããã³ããã衚瀺ããåã«ããŠãŒã¶ãŒããŠã§ãã¢ããªã±ãŒã·ã§ã³ãšäžå®åæ°å¯Ÿè©±ããã®ãåŸ ã¡ãŸããããã¯ããŠãŒã¶ãŒãã¢ããªã䟿å©ã ãšæããã€ã³ã¹ããŒã«ããå¯èœæ§ãé«ãããšã確èªããããã§ããå ·äœçãªèšªååæ°ãæéã¯ãã©ãŠã¶ã«ãã£ãŠç°ãªããŸãããåºæ¬çãªååã¯åãã§ãã
5. ãã®ä»ã®åºæºïŒãã©ãŠã¶ã«ãã£ãŠç°ãªãïŒ
äžèšã®äžæ žçãªåºæºã«å ããŠããã©ãŠã¶ã¯ã€ã³ã¹ããŒã«ããã³ãããããªã¬ãŒããããã®è¿œå èŠä»¶ã課ãå ŽåããããŸãããããã®èŠä»¶ã«ã¯ä»¥äžãå«ãŸããããšããããŸãïŒ
- ãµã€ãæ»åšæéïŒãŠãŒã¶ãŒã¯èšªåäžã«ãµã€ãã§æäœéã®æéãéããå¿ èŠããããŸãã
- ããŒãžã€ã³ã¿ã©ã¯ã·ã§ã³ïŒãŠãŒã¶ãŒã¯ããŒãžãšäœããã®åœ¢ã§å¯Ÿè©±ããå¿ èŠããããŸãïŒäŸïŒãªã³ã¯ã®ã¯ãªãã¯ãã¹ã¯ããŒã«ããã©ãŒã ã®éä¿¡ïŒã
- ãããã¯ãŒã¯ã®å¯çšæ§ïŒãã©ãŠã¶ã¯ããŠãŒã¶ãŒããªã³ã©ã€ã³ã®ãšãã«ã®ã¿ããã³ããã衚瀺ããããšããããŸãã
ã€ã³ã¹ããŒã«ããã³ããããªã¬ãŒããžãã¯ã®çè§£
ã€ã³ã¹ããŒã«ããã³ããããªã¬ãŒããžãã¯ã¯ããã©ãŠã¶ããŠãŒã¶ãŒã«ã€ã³ã¹ããŒã«ããã³ããããã€è¡šç€ºããããæ±ºå®ããããã«äœ¿çšããäžé£ã®ã«ãŒã«ãšæ¡ä»¶ã§ãããã®ããžãã¯ã¯ãã€ã³ããªãžã§ã³ãã§ãŠãŒã¶ãŒãã¬ã³ããªãŒã«ãªãããã«èšèšãããŠãããããã³ãããé¢é£æ§ããããæè¿ãããå¯èœæ§ãé«ãå Žåã«ã®ã¿è¡šç€ºãããããã«ããŸãã
beforeinstallprompt ã€ãã³ã
ã€ã³ã¹ããŒã«ããã³ãããå¶åŸ¡ããéµã¯beforeinstallpromptã€ãã³ãã§ãããã®ã€ãã³ãã¯ãPWAãã€ã³ã¹ããŒã«åºæºãæºããããšãã«ãã©ãŠã¶ã«ãã£ãŠçºè¡ãããŸããéèŠãªã®ã¯ããã®ã€ãã³ãã¯ãã£ã³ã»ã«å¯èœã§ãããšããããšã§ããã€ãŸãããã©ãŠã¶ãããã©ã«ãã®ã€ã³ã¹ããŒã«ããã³ããã衚瀺ããã®ãé²ãã代ããã«ç¬èªã®ã«ã¹ã¿ã ããã³ãããå®è£
ã§ããŸãã
beforeinstallprompt ã€ãã³ãã®ãªãã¹ã³ïŒ
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (event) => {
// ã¢ãã€ã«ã§ããã€ã³ãã©ããŒã衚瀺ãããã®ãé²ã
event.preventDefault();
// åŸã§ããªã¬ãŒã§ããããã«ã€ãã³ããä¿åãã
deferredPrompt = event;
// UIãæŽæ°ããŠããŠãŒã¶ãŒã«PWAãã€ã³ã¹ããŒã«ã§ããããšãéç¥ãã
showInstallPromotion();
});
説æïŒ
beforeinstallpromptã€ãã³ããä¿åããããã«deferredPromptãšãã倿°ã宣èšããŸããwindowãªããžã§ã¯ãã«ã€ãã³ããªã¹ããŒã远å ããŠãbeforeinstallpromptã€ãã³ãããªãã¹ã³ããŸãã- ã€ãã³ããªã¹ããŒå
ã§
event.preventDefault()ãåŒã³åºããŠããã©ãŠã¶ãããã©ã«ãã®ã€ã³ã¹ããŒã«ããã³ããã衚瀺ããã®ãé²ããŸãã - åŸã§äœ¿çšããããã«
eventãªããžã§ã¯ããdeferredPrompt倿°ã«ä¿åããŸãã showInstallPromotion()颿°ãåŒã³åºããŠããŠãŒã¶ãŒã«ã«ã¹ã¿ã ã€ã³ã¹ããŒã«ããã³ããã衚瀺ããŸãã
ã«ã¹ã¿ã ã€ã³ã¹ããŒã«ããã³ããã®å®è£
beforeinstallpromptã€ãã³ãããã£ããã£ããããç¬èªã®ã«ã¹ã¿ã ã€ã³ã¹ããŒã«ããã³ãããå®è£
ã§ããŸããããã«ãããããã³ããã®å€èгãšåäœãå¶åŸ¡ããããã«ã¹ã¿ãã€ãºããããŠãŒã¶ãŒãã¬ã³ããªãŒãªäœéšãæäŸã§ããŸãã
ã«ã¹ã¿ã ã€ã³ã¹ããŒã«ããã³ããã®äŸïŒ
function showInstallPromotion() {
const installButton = document.getElementById('install-button');
installButton.style.display = 'block';
installButton.addEventListener('click', async () => {
// ã€ã³ã¹ããŒã«ããã³ããã衚瀺
deferredPrompt.prompt();
// ãŠãŒã¶ãŒãããã³ããã«å¿çããã®ãåŸ
ã€
const { outcome } = await deferredPrompt.userChoice;
// ãªãã·ã§ã³ã§ããŠãŒã¶ãŒã®éžæçµæãå«ãåæã€ãã³ããéä¿¡
console.log(`ãŠãŒã¶ãŒã®ã€ã³ã¹ããŒã«ããã³ãããžã®å¿ç: ${outcome}`);
// ããã³ããã¯äžåºŠäœ¿çšãããããåå©çšã¯ã§ããªãã®ã§ç Žæ£ãã
deferredPrompt = null;
installButton.style.display = 'none';
});
}
説æïŒ
showInstallPromotion()颿°ã¯ãã«ã¹ã¿ã ã€ã³ã¹ããŒã«ããã³ããã衚瀺ãã責任ããããŸãã- ãŸããã€ã³ã¹ããŒã«ãã¿ã³ã®
displayã¹ã¿ã€ã«ã'block'ã«èšå®ããŠè¡šç€ºãããŸãã - 次ã«ãã€ã³ã¹ããŒã«ãã¿ã³ã«ã€ãã³ããªã¹ããŒã远å ããŠãã¯ãªãã¯ã€ãã³ããåŠçããŸãã
- ã¯ãªãã¯ã€ãã³ããªã¹ããŒå
ã§
deferredPrompt.prompt()ãåŒã³åºãããŠãŒã¶ãŒã«ã€ã³ã¹ããŒã«ããã³ããã衚瀺ããŸãã - 次ã«ã
await deferredPrompt.userChoiceã䜿çšããŠãŠãŒã¶ãŒãããã³ããã«å¿çããã®ãåŸ ã¡ãŸããããã¯ããŠãŒã¶ãŒã®éžæã®outcomeïŒ'accepted'ãŸãã¯'dismissed'ã®ããããïŒãå«ããªããžã§ã¯ãã§è§£æ±ºããããããã¹ãè¿ããŸãã - åæç®çã§ãŠãŒã¶ãŒã®å¿çãã³ã³ãœãŒã«ã«èšé²ããŸãã
- æåŸã«ãããã³ããã¯äžåºŠãã䜿çšã§ããªãããã
deferredPromptãnullã«èšå®ããã€ã³ã¹ããŒã«ãã¿ã³ãé衚瀺ã«ããŸãã
ã€ã³ã¹ããŒã«ããã³ãããããªã¬ãŒããããã®ãã¹ããã©ã¯ãã£ã¹
è¯å®çãªãŠãŒã¶ãŒäœéšãä¿èšŒããããã«ã¯ãã€ã³ã¹ããŒã«ããã³ãããããªã¬ãŒããéã«ä»¥äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšãéèŠã§ãïŒ
- æ»æçã«ãªããªãïŒãŠãŒã¶ãŒã®æåã®èšªåæã«ããã«ã€ã³ã¹ããŒã«ããã³ããã衚瀺ããã®ã¯é¿ããŠãã ãããããã¯æŒãã€ãããŸãããšèªèããããŠãŒã¶ãŒãã¢ããªã䜿çšããã®ãããããããå¯èœæ§ããããŸãã
- ã³ã³ããã¹ããæäŸããïŒPWAãã€ã³ã¹ããŒã«ããå©ç¹ã説æããŸãããªãã©ã€ã³ã¢ã¯ã»ã¹ãèªã¿èŸŒã¿æéã®ççž®ãããæ²¡å ¥æã®ããäœéšãªã©ã®æ©èœã匷調ããŠãã ããã
- ã«ã¹ã¿ã ããã³ããã䜿çšããïŒã¢ããªã®ã«ãã¯ã¢ã³ããã£ãŒã«ã«åã£ãã«ã¹ã¿ã ã€ã³ã¹ããŒã«ããã³ãããå®è£ ããŸããããã«ããããŠãŒã¶ãŒäœéšãåäžããã€ã³ã¹ããŒã«ã®å¯èœæ§ãé«ãŸããŸãã
- ãŠãŒã¶ãŒã®è¡åãèæ ®ããïŒãŠãŒã¶ãŒã®è¡åã«åºã¥ããŠã€ã³ã¹ããŒã«ããã³ãããããªã¬ãŒããŸããäŸãã°ããŠãŒã¶ãŒãè€æ°ã®ããŒãžã蚪åããåŸãããµã€ãã«äžå®æéæ»åšããåŸã«ããã³ããã衚瀺ããããšãã§ããŸãã
- 培åºçã«ãã¹ãããïŒããŸããŸãªãã©ãŠã¶ãããã€ã¹ã§ã€ã³ã¹ããŒã«ããã³ããã®ããžãã¯ããã¹ããããã¹ãŠã®ãŠãŒã¶ãŒã«å¯ŸããŠæ£ããåäœããäžè²«ããäœéšãæäŸããããšã確èªããŸãã
- ããã³ãããé å»¶ãããïŒ`beforeinstallprompt`ãé å»¶ããããã¿ã³ãªã©ãã¯ãªãã¯ãããåŸã«ã®ã¿è¡šç€ºããŸãã
ãšããžã±ãŒã¹ãšãã©ãŠã¶ã®å·®ç°ãžã®å¯Ÿå¿
ã€ã³ã¹ããŒã«ããã³ããã®åäœã¯ãã©ãŠã¶ã«ãã£ãŠè¥å¹²ç°ãªãå¯èœæ§ãããããšã«æ³šæããããšãéèŠã§ããäŸãã°ãäžéšã®ãã©ãŠã¶ã¯ã«ã¹ã¿ã ã€ã³ã¹ããŒã«ããã³ããããµããŒãããŠããªãå Žåããããä»ã®ãã©ãŠã¶ã¯ããã³ãããããªã¬ãŒããããã®ç°ãªãåºæºãæã£ãŠããå ŽåããããŸãã
ãããã®å·®ç°ã«å¯Ÿå¿ããã«ã¯ã次ã®ããã«ãã¹ãã§ãïŒ
- ãµããŒãã®ç¢ºèªïŒ
beforeinstallpromptã€ãã³ãã䜿çšããåã«ããã©ãŠã¶ã§ãµããŒããããŠãããã©ããã確èªããŸãã - ãã©ãŒã«ããã¯ãæäŸããïŒã«ã¹ã¿ã ã€ã³ã¹ããŒã«ããã³ããããµããŒããããŠããªãå Žåã¯ãã¢ããªã¹ãã¢ã®ã¢ããªããŒãžãžã®ãªã³ã¯ïŒè©²åœããå ŽåïŒãªã©ã®ãã©ãŒã«ããã¯ã¡ã«ããºã ãæäŸããŸãã
- è€æ°ã®ãã©ãŠã¶ã§ãã¹ãããïŒããŸããŸãªãã©ãŠã¶ã§ã€ã³ã¹ããŒã«ããã³ããã®ããžãã¯ããã¹ããããã¹ãŠã®ç°å¢ã§æ£ããåäœããããšã確èªããŸãã
- ãã©ãããã©ãŒã ã®å¶éã«æ³šæããïŒäžéšã®ãã©ãããã©ãŒã ã§ã¯PWAã®ã€ã³ã¹ããŒã«ãèš±å¯ãããŠããŸããïŒäŸïŒiOS 16.4以åïŒã
ã€ã³ã¹ããŒã«ããã³ããæé©åã®ããã®é«åºŠãªãã¯ããã¯
ã€ã³ã¹ããŒã«ããã³ããã®åºæ¬çãªå®è£ ãè¶ ããŠãã€ã³ã¹ããŒã«ããã»ã¹ãæé©åãããŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ããåäžãããããã«äœ¿çšã§ããããã€ãã®é«åºŠãªãã¯ããã¯ããããŸãã
1. A/Bãã¹ã
A/Bãã¹ãã§ã¯ãã€ã³ã¹ããŒã«ããã³ããã®2ã€ä»¥äžã®ããªãšãŒã·ã§ã³ãäœæããç°ãªããŠãŒã¶ãŒã°ã«ãŒãã§ãã¹ãããŸããããã«ãããæã广çãªããã³ããã®ãã¶ã€ã³ãšã¡ãã»ãŒãžã³ã°ãç¹å®ããããé«ãã€ã³ã¹ããŒã«çã«ã€ãªãããŸãã
A/Bãã¹ãã®äŸïŒ
- ããªãšãŒã·ã§ã³AïŒåºæ¬çãªã³ãŒã«ãã¥ã¢ã¯ã·ã§ã³ãæã€ã·ã³ãã«ãªã€ã³ã¹ããŒã«ããã³ããïŒäŸïŒãã¢ããªãã€ã³ã¹ããŒã«ãïŒã
- ããªãšãŒã·ã§ã³BïŒã¢ããªãã€ã³ã¹ããŒã«ããå©ç¹ã匷調ããããã詳现ãªã€ã³ã¹ããŒã«ããã³ããïŒäŸïŒããªãã©ã€ã³ã¢ã¯ã»ã¹ãšé«éèªã¿èŸŒã¿ã®ããã«ã¢ããªãã€ã³ã¹ããŒã«ãïŒã
åããªãšãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«çã远跡ããããšã§ãã©ã®ããã³ããããã广çãã倿ãããã¹ãŠã®ãŠãŒã¶ãŒã«ãã®ããã³ããã䜿çšã§ããŸãã
2. ã³ã³ããã¹ãã«å¿ããããã³ãã
ã³ã³ããã¹ãã«å¿ããããã³ããã¯ããŠãŒã¶ãŒã®çŸåšã®ã³ã³ããã¹ãã«åãããŠèª¿æŽãããã€ã³ã¹ããŒã«ããã³ããã§ããäŸãã°ãã¢ãã€ã«ããã€ã¹ã§é²èЧããŠãããŠãŒã¶ãŒãšãã¹ã¯ãããã³ã³ãã¥ãŒã¿ã§é²èЧããŠãããŠãŒã¶ãŒã«ç°ãªãããã³ããã衚瀺ããããšãã§ããŸãã
ã³ã³ããã¹ãã«å¿ããããã³ããã®äŸïŒ
- ã¢ãã€ã«ãŠãŒã¶ãŒïŒã¢ãã€ã«ããã€ã¹ã«ã¢ããªãã€ã³ã¹ããŒã«ããå©ç¹ã匷調ããããã³ããã衚瀺ããŸãïŒäŸïŒããªãã©ã€ã³ã¢ã¯ã»ã¹ãšããã·ã¥éç¥ã®ããã«ã¢ããªãã€ã³ã¹ããŒã«ãïŒã
- ãã¹ã¯ããããŠãŒã¶ãŒïŒãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãšããŠã¢ããªãã€ã³ã¹ããŒã«ããå©ç¹ã匷調ããããã³ããã衚瀺ããŸãïŒäŸïŒãå°çšãŠã£ã³ããŠãšããã©ãŒãã³ã¹åäžã®ããã«ã¢ããªãã€ã³ã¹ããŒã«ãïŒã
3. é å»¶ããã³ãã
é å»¶ããã³ããã¯ãäžå®æéãçµéããåŸããŸãã¯ãŠãŒã¶ãŒãç¹å®ã®ã¢ã¯ã·ã§ã³ãå®è¡ããåŸã«è¡šç€ºãããã€ã³ã¹ããŒã«ããã³ããã§ããããã«ããããŠãŒã¶ãŒã®æåã®äœéšãäžæããã®ãé¿ããããã³ãããåãå ¥ããŠãããå¯èœæ§ãé«ããããšãã§ããŸãã
é å»¶ããã³ããã®äŸïŒ
- ãŠãŒã¶ãŒããµã€ãã«5åéæ»åšããåŸããŸãã¯3ã€ã®ç°ãªãããŒãžã蚪åããåŸã«ã€ã³ã¹ããŒã«ããã³ããã衚瀺ããŸãã
çµè«
PWAã€ã³ã¹ããŒã«ããã³ããã®ããªã¬ãŒããžãã¯ãç¿åŸããããšã¯ãã·ãŒã ã¬ã¹ã§é åçãªãŠãŒã¶ãŒäœéšãåµåºããããã«äžå¯æ¬ ã§ããäž»èŠãªã€ã³ã¹ããŒã«åºæºãçè§£ããã«ã¹ã¿ã ã€ã³ã¹ããŒã«ããã³ãããå®è£ ãããã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãPWAã®æ¡çšãå€§å¹ ã«å¢ããããŠãŒã¶ãŒã«ãã€ãã£ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã«ä»£ãã䟡å€ããéžæè¢ãæäŸã§ããŸãããŠãŒã¶ãŒäœéšãåªå ããã€ã³ã¹ããŒã«ããã³ããã§é床ã«ç©æ¥µçã«ãªãããšãé¿ããããšãå¿ããªãã§ãã ãããã³ã³ããã¹ããæäŸããPWAãã€ã³ã¹ããŒã«ããå©ç¹ã匷調ããããšã§ããŠãŒã¶ãŒã«äžæ©èžã¿åºããŠããããã¢ããªãæäŸããå šç¯å²ã®æ©èœã楜ããã§ãããããšãã§ããŸãããŠã§ããé²åãç¶ããäžã§ãPWAã¯ã¢ãã€ã«ã©ã³ãã¹ã±ãŒãã«ãããŠãŸããŸãéèŠãªåœ¹å²ãæããããã«ãªããããŸãå®è¡ãããã€ã³ã¹ããŒã«äœéšã¯æåã®ããã«äžå¯æ¬ ã§ãã
äžæ žçãªåºæºãbeforeinstallpromptã€ãã³ãããããŠãã¹ããã©ã¯ãã£ã¹ã«çŠç¹ãåœãŠãããšã§ãäžçäžã®éçºè
ã¯ãç°¡åã«ã€ã³ã¹ããŒã«ã§ããããŸããŸãªãã©ãããã©ãŒã ãããã€ã¹ã§ãŠãŒã¶ãŒã«æ¥œããäœéšãæäŸããPWAãäœæã§ããŸããããŸããŸãªã¢ãããŒãã詊ãç¶ããPWAã®åãæŽ»çšããŠåè¶ãããŠã§ãäœéšãæäŸããŠãã ããã